package bliVideo
/**
 * https://www.bilibili.com/video/BV1wf4y1s7TG/?p=45
 * 45-substring
 * 字符串截取，substring函数支持IntRange类型(表示一个整数范围的类型)的参数, until创建的范围不包括上限值。
 */
fun main61() {
    val NAME = "Jimmy's friend"
    /**
     * 1.substring(range: IntRange)
     */
    val index : Int = NAME.indexOf('\'')

    val substring = NAME.substring(0, index)

    val str = NAME.substring(0 until index)
    println("index = $index, substring = $substring, str = $str")


    /**
     * 46-split
     * split函数返回的是List集合数据，List集合又支持"解构语法特性"，
     * 它允许你在一个表达式里给多个变量赋值，解构常用来简化变量的赋值。
     */
    val NAMES = "jack,jacky,jason"
    val datas = NAMES.split(',')
    //解构语法, 一次性给给1个表达式多个变量赋值
    val (person1: String, person2, person3, person4) = NAMES.split(',')
    println("$person1, $person2, $person3, $person4")
}


/**
 * 47-replace
 * 字符串替换
 */
fun main() {
    //加密替换一个宇符串
    val strl = "The people's Republic of China."
    //第一个参数是正则表达式，用来决定要普换哪些字符
    //第二个参数是匿名函数，用来确定该如何替换正则表达式搜索到的字符
    val str2 = strl.replace(Regex("[aeiou]")) {
        when(it.value) {
            "a" -> "1"
            "e" -> "2"
            "i" -> "3"
            "o" -> "4"
            "u" -> "5"
            else -> it.value
        }
    }
    println(strl)
    println(str2)
}